wall=1.5;
hInternal=50;
rInternal=5;

module internalCut(){
    cylinder(r=rInternal, h=hInternal);
    cylinder(r=1, h=hInternal+20);
    translate([0,0,hInternal-0.5])
     cylinder(r1=rInternal, r2=1, h=6);
}

module syringe(fn){
$fn=fn;	

translate([0,0,-0.5])
 difference(){
  translate([0,0,0.5]){
    cylinder(r=1+wall, h=hInternal+10);
    cylinder(r=rInternal*2, h=wall);
    cylinder(r=rInternal+wall, h=hInternal);
    translate([0,0,hInternal])
     color("red")
     cylinder(r1=rInternal+wall, r2=1+wall, h=7);
  }
  
union(){
   internalCut();
   // translate([-20,0,0]) cube([40,20,70]);
  }
}

translate([20,0,9.5]){
 difference(){
   union(){
    internalCut();
    translate([0,0,-9.5]) 
      cylinder(r1=rInternal+2, r2=rInternal, h=10);
   }
   union(){
     translate([-10,-10,hInternal+5]) cube([20,20,20]);
     translate([wall/2,wall/2,-8]) cube([20,20,hInternal+4]);
     for ( i = [0 : 3] ){
      rotate(a=[0,0,90*i])
        translate([wall/2+0.2,wall/2+0.1,-8]) cube([20,20,hInternal+4]);
     }
   }
 }
}

}

syringe(50);
translate([0, 30, 0]) syringe(6);